package com.yanqu.road.entity.log.wanyao;

import com.yanqu.road.entity.FieldTypeAnnotation;
import com.yanqu.road.entity.activity.wanyao.entity.WanYaoBlockData;
import com.yanqu.road.entity.log.ServerBaseLog;

import java.util.Date;
import java.util.List;
import java.util.Map;

@FieldTypeAnnotation(tableName = "t_l_ck_wan_yao_operate_block", autoSave = true,uploadCk = true,desc = "万妖行-操作盘面")
public class LogWanYaoOperateBlock extends ServerBaseLog {
    @FieldTypeAnnotation(desc = "活动ID", isIndex = true)
    private int activityId;
    @FieldTypeAnnotation(desc = "用户ID", isIndex = true)
    private long userId;
    @FieldTypeAnnotation(desc = "操作类型 1为普通升级 2为直接上阵")
    private int operateType;
    @FieldTypeAnnotation(desc = "操作的方块",saveJson = true)
    private WanYaoBlockData operateBlock;
    @FieldTypeAnnotation(desc = "操作导致合成出的方块",saveJson = true)
    private List<WanYaoBlockData> newBlock;

    @FieldTypeAnnotation(desc = "旧妖怪",saveJson = true)
    private Map<Integer,Integer> oldMonster;
    @FieldTypeAnnotation(desc = "上阵妖怪",saveJson = true)
    private Map<Integer,Integer> goBattleBlockMap;
    @FieldTypeAnnotation(desc = "新妖怪",saveJson = true)
    private Map<Integer,Integer> newMonster;


    @FieldTypeAnnotation(desc = "触发buff",saveJson = true)
    private Map<Integer,Integer> triggerBuff;
    @FieldTypeAnnotation(desc = "妖王等级")
    private int kingLevel;

    @FieldTypeAnnotation(desc = "旧妖力")
    private long oldKingPower;

    @FieldTypeAnnotation(desc = "新妖力")
    private long newKingPower;

    @FieldTypeAnnotation(desc = "剩余步数")
    private int remainSteps;


    public LogWanYaoOperateBlock(int activityId,
                                 long userId,
                                 int operateType,
                                 WanYaoBlockData operateBlock,
                                 List<WanYaoBlockData> newBlock,
                                 Map<Integer, Integer> oldMonster,
                                 Map<Integer, Integer> goBattleBlockMap,
                                 Map<Integer, Integer> newMonster,
                                 Map<Integer,Integer> triggerBuff,
                                 int kingLevel,
                                 long oldKingPower,
                                 long newKingPower,
                                 int remainSteps,
                                 Date operateTime) {
        this.activityId = activityId;
        this.userId = userId;
        this.operateType = operateType;
        this.operateBlock = operateBlock;
        this.newBlock = newBlock;
        this.oldMonster = oldMonster;
        this.goBattleBlockMap = goBattleBlockMap;
        this.newMonster = newMonster;
        this.triggerBuff = triggerBuff;
        this.kingLevel = kingLevel;
        this.oldKingPower = oldKingPower;
        this.newKingPower = newKingPower;
        this.remainSteps = remainSteps;
    }

    public int getActivityId() {
        return activityId;
    }

    public void setActivityId(int activityId) {
        this.activityId = activityId;
    }

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }

    public int getOperateType() {
        return operateType;
    }

    public void setOperateType(int operateType) {
        this.operateType = operateType;
    }

    public WanYaoBlockData getOperateBlock() {
        return operateBlock;
    }

    public void setOperateBlock(WanYaoBlockData operateBlock) {
        this.operateBlock = operateBlock;
    }

    public List<WanYaoBlockData> getNewBlock() {
        return newBlock;
    }

    public void setNewBlock(List<WanYaoBlockData> newBlock) {
        this.newBlock = newBlock;
    }

    public Map<Integer, Integer> getOldMonster() {
        return oldMonster;
    }

    public void setOldMonster(Map<Integer, Integer> oldMonster) {
        this.oldMonster = oldMonster;
    }

    public Map<Integer, Integer> getGoBattleBlockMap() {
        return goBattleBlockMap;
    }

    public void setGoBattleBlockMap(Map<Integer, Integer> goBattleBlockMap) {
        this.goBattleBlockMap = goBattleBlockMap;
    }

    public Map<Integer, Integer> getNewMonster() {
        return newMonster;
    }

    public void setNewMonster(Map<Integer, Integer> newMonster) {
        this.newMonster = newMonster;
    }

    public Map<Integer, Integer> getTriggerBuff() {
        return triggerBuff;
    }

    public void setTriggerBuff(Map<Integer, Integer> triggerBuff) {
        this.triggerBuff = triggerBuff;
    }

    public int getKingLevel() {
        return kingLevel;
    }

    public void setKingLevel(int kingLevel) {
        this.kingLevel = kingLevel;
    }

    public long getOldKingPower() {
        return oldKingPower;
    }

    public void setOldKingPower(long oldKingPower) {
        this.oldKingPower = oldKingPower;
    }

    public long getNewKingPower() {
        return newKingPower;
    }

    public void setNewKingPower(long newKingPower) {
        this.newKingPower = newKingPower;
    }

    public int getRemainSteps() {
        return remainSteps;
    }

    public void setRemainSteps(int remainSteps) {
        this.remainSteps = remainSteps;
    }

}
